home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import flash.utils.Dictionary;
- import flash.xml.XMLNode;
- import flash.xml.XMLNodeType;
-
- public class Localization
- {
-
- internal static var _singleton:Localization;
-
-
- internal var _strings:Dictionary;
-
- internal var _loader:XMLLoader;
-
- internal var _fn:Function;
-
- internal var _current_language:String;
-
- public function Localization()
- {
- _strings = new Dictionary();
- super();
- }
-
- public static function getInstance() : Localization
- {
- if(_singleton == null)
- {
- _singleton = new Localization();
- }
- return _singleton;
- }
-
- public static function getString(param1:String) : String
- {
- return getInstance().getString(param1);
- }
-
- protected function onDone(param1:String) : void
- {
- var _loc2_:String = null;
- var _loc3_:XMLNode = null;
- var _loc4_:XMLNode = null;
- for each(_loc3_ in _loader.getDoc().firstChild.childNodes)
- {
- if(_loc3_.nodeType == XMLNodeType.ELEMENT_NODE)
- {
- _loc2_ = String(_loc3_.attributes["language"]);
- for each(_loc4_ in _loc3_.childNodes)
- {
- if(_loc4_.nodeType == XMLNodeType.ELEMENT_NODE)
- {
- addString(_loc2_,_loc4_.attributes["id"],_loc4_.attributes["text"]);
- }
- }
- }
- }
- _fn();
- }
-
- protected function getKey(param1:String, param2:String) : String
- {
- return param1 + "-" + param2;
- }
-
- public function startLoad(param1:Function, param2:String) : void
- {
- _fn = param1;
- _loader = new XMLLoader(MainDocument.getFullPathForName(param2),onDone,null);
- }
-
- protected function addString(param1:String, param2:String, param3:String) : void
- {
- _strings[getKey(param1,param2)] = param3;
- trace("added " + param1 + " " + param2 + " " + param3);
- }
-
- public function setLanguage(param1:String) : *
- {
- _current_language = param1;
- }
-
- public function getString(param1:String) : String
- {
- var _loc2_:String = null;
- var _loc3_:String = null;
- _loc2_ = getKey(_current_language,param1);
- _loc3_ = String(_strings[_loc2_]);
- if(_loc3_ != null)
- {
- return _loc3_;
- }
- return param1;
- }
- }
- }
-